package com.visec.hdy.hadoop.standard;

import java.util.List;

/**
 * 执行查询接口
 * 
 * @author hdy
 *
 * @param <K>
 * @param <V>
 */
public interface Inquiry<K, V> {

	/**
	 * 清除定位信息
	 */
	void clear();

	/**
	 * 设置定位
	 * 
	 * @param l
	 */
	void seek(long l);

	/**
	 * 获取后续n个数据
	 * 
	 * @param i
	 * @param c
	 * @return
	 */
	List<V> next(int i, Class<V> c);

	/**
	 * 获取数据总量
	 * 
	 * @return
	 */
	long count();

	/**
	 * 设置查询上下文
	 * 
	 * @param context
	 */
	void setContext(ReadContext context);

	/**
	 * 查询数据，执行后获取到相关数据定位信息
	 * 
	 * @param start
	 * @param end
	 */
	void query(K start, K end);

	/**
	 * 查询所有数据
	 */
	void queryAll();

	/**
	 * 查询类同数据
	 * 
	 * @param like
	 */
	void queryLike(K like);
}
